package com.yidu.SystemManagement.service.impl;

import com.yidu.SystemManagement.entity.User;
import com.yidu.SystemManagement.mapper.UserMapper;
import com.yidu.SystemManagement.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 任俊杰
 * @version 1.0
 * @date 2022/12/5
 */
@Service
public class UserImpl  implements UserService {
    @Resource
    private UserMapper userMapper;
    /**
     * 新增
     * @param user 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int addUser(User user) {
        return userMapper.addUser(user);
    }

    /**
     * 删除
     * @param userid 用户id
     * @return int i 受影响的行数
     */
    @Override
    public int deleteUser(Integer userid) {
        return userMapper.deleteUser(userid);
    }

    /**
     * 修改
     * @param user 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int updateUser(User user) {
        return userMapper.updateUser(user);
    }

    /**
     * 查询
     * @param page 当前页
     * @param limit 每页显示数
     * @param user 用户对象
     * @return list 集合
     */
    @Override
    public List<User> selectUser(int page, int limit, User user) {
        Map map=new HashMap();
        map.put("page",(page-1)*limit);
        map.put("limit",limit);
        map.put("strWhere",buildStrWhere(user));
        List<User> users = userMapper.selectUser(map);
        return users;
    }


    /**
     * 生成条件字符串
     * @param user 生成条件的参数
     * @return 条件字符串  and getRightText like '%%'
     */
    public String buildStrWhere(User user){
        StringBuffer strWhere=new StringBuffer("");
        if(user.getUserName()!=null && !user.getUserName().equals(""))
        {
            strWhere.append(" and userName like '%" +user.getUserName() + "%'");
        }
        System.out.println(strWhere+"===111");
        return  strWhere.toString();
    }


    /**
     * 分页查行数 模糊查询后的行数 根据条件
     * @param user 用户对象
     * @return int i 受影响的行数
     */
    @Override
    public int selectUserCount(User user) {
        Map map=new HashMap();
        map.put("strWhere",buildStrWhere(user));
        int count =userMapper.selectUserCount(map);
        return count;
    }

    /**
     * 验证登录，传入用户的实体类 返回查询的记录数，若为0，则表示登录正确
     * @param user 用户对象
     * @return int i 受影响的行数
     * @author 任俊杰
     */
    @Override
    public int checkLogin(User user) {
        return userMapper.checkLogin(user);
    }
}
